<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;
use Hash;
use App\Http\Requests;
use App\Http\Requests\AdminRegisterRequest;
use App\Http\Controllers\Controller;

class AdminUserController extends Controller
{ //后台用户首页
    public function getIndex(Request $request){
      // 读取数据 并且分页
    //数据的处理
        $b=$request->input('userlevel');
        $c=$request->input('useraudit');
        $d=$request->input('userstatus');
         switch ($b) {
                    case '1':
                        $bb='超级管理员';
                        break;
                    case '2':
                        $bb='普通管理员';
                        break;
                    case '3':
                        $bb='临时管理员';
                        break;   
                    default:
                        $bb=null;
                        break;
                }
         switch ($c) {
                case 'yes':
                    $cc='已审核';
                    break;
                case 'no':
                    $cc='未审核';
                    break;  
                default:
                    $cc=null;
                    break;
            }
         switch ($d) {
                case 'yes':
                    $dd='已激活';
                    break;
                case 'no':
                    $dd='未激活';
                    break;  
                default:
                $dd=null;
                    break;
            }

          //如果传过来的三个条件都为空 
        if ($bb==null && $cc==null && $dd==null) {
            $adminusers = DB::table('adminuser')
              ->where(function($query)use($request){
                  //数据的处理
                  $a=$request->input('username');
                $query->where('username','like','%'.$a.'%');
                })
            ->orderBy('id', 'asc')->paginate($request->input('usernum',10));
        } 
            //如果传过来的三个条件都不为空 
        if (!($bb==null && $cc==null && $dd==null)) {
            $adminusers = DB::table('adminuser')
              ->where(function($query)use($request){
                   $b=$request->input('userlevel');
                  $c=$request->input('useraudit');
                  $d=$request->input('userstatus');
                   switch ($b) {
                              case '1':
                                  $bb='超级管理员';
                                  break;
                              case '2':
                                  $bb='普通管理员';
                                  break;
                              case '3':
                                  $bb='临时管理员';
                                  break;   
                              default:
                                  $bb=null;
                                  break;
                          }
                       switch ($c) {
                              case 'yes':
                                  $cc='已审核';
                                  break;
                              case 'no':
                                  $cc='未审核';
                                  break;  
                              default:
                                  $cc=null;
                                  break;
                          }
                       switch ($d) {
                              case 'yes':
                                  $dd='已激活';
                                  break;
                              case 'no':
                                  $dd='未激活';
                                  break;  
                              default:
                              $dd=null;
                                  break;
                          }
                  //数据的处理
                  $a=$request->input('username');
                $query->where('username','like','%'.$a.'%')->where(['userlevel'=>$bb,'useraudit'=>$cc,'userstatus'=>$dd]);
                })
            ->orderBy('id', 'asc')->paginate($request->input('usernum',10));
        } 
        //如果用户权限不为空 且激活状态和审核状态都为空
        if ( ($cc== null && $dd==null) && !($bb==null)  ){
          
            $adminusers = DB::table('adminuser')
              ->where(function($query)use($request){
                  //数据的处理
                  $a=$request->input('username');
                  $b=$request->input('userlevel');
                   switch ($b) {
                    case '1':
                        $bb='超级管理员';
                        break;
                    case '2':
                        $bb='普通管理员';
                        break;
                    case '3':
                        $bb='临时管理员';
                        break;   
                    default:
                        $bb=null;
                        break;
                    }
                $query->where('username','like','%'.$a.'%')->where(['userlevel'=>$bb]);
                })
              ->orderBy('id', 'asc')->paginate($request->input('usernum',10));
        }   
        //如果用户权限为空 且激活状态和审核状态都不为空
        if (!($cc==null) && !($dd==null) && $bb==null) {
          
            $adminusers = DB::table('adminuser')
              ->where(function($query)use($request){
                  //数据的处理
                  $a=$request->input('username');
                   $c=$request->input('useraudit');
                    switch ($c) {
                      case 'yes':
                          $cc='已审核';
                          break;
                      case 'no':
                          $cc='未审核';
                          break;  
                      default:
                          $cc=null;
                          break;
                  } 
                  $d=$request->input('userstatus');
                      switch ($d) {
                      case 'yes':
                          $dd='已激活';
                          break;
                      case '2':
                          $dd='未激活';
                          break;  
                      default:
                          $dd=null;
                          break;

                  }
                $query->where('username','like','%'.$a.'%')->where(['useraudit'=>$cc,'userstatus'=>$dd]);
                })
              ->orderBy('id', 'asc')->paginate($request->input('usernum',10));
        }  
        //如果用户审核不为空 且用户权限和用户激活状态都为空
        if (($bb==null) && ($dd==null) && !($cc==null)) {
        
            $adminusers = DB::table('adminuser')
              ->where(function($query)use($request){
                  //数据的处理
                  $a=$request->input('username');
                  $c=$request->input('useraudit');
                  switch ($c) {
                    case 'yes':
                        $cc='已审核';
                        break;
                    case 'no':
                        $cc='未审核';
                        break;  
                    default:
                        $cc=null;
                        break;
                }

                $query->where('username','like','%'.$a.'%')->where(['useraudit'=>$cc]);
                })
                ->orderBy('id', 'asc')->paginate($request->input('usernum',10));
        }
        //如果用户审核为空 且用户权限和用户激活状态都不为空
        if (!($bb==null) && !($dd==null) && $cc==null) {
         
            $adminusers = DB::table('adminuser')
              ->where(function($query)use($request){
                  //数据的处理
                  $a=$request->input('username');
                   $b=$request->input('userlevel');
                   switch ($b) {
                    case '1':
                        $bb='超级管理员';
                        break;
                    case '2':
                        $bb='普通管理员';
                        break;
                    case '3':
                        $bb='临时管理员';
                        break;   
                    default:
                        $bb=null;
                        break;

                }
                   $d=$request->input('userstatus');
                      switch ($d) {
                      case 'yes':
                          $dd='已激活';
                          break;
                      case '2':
                          $dd='未激活';
                          break;  
                      default:
                          $dd=null;
                          break;
                  }
                $query->where('username','like','%'.$a.'%')->where(['userlevel'=>$bb,'userstatus'=>$dd]);
                })
                ->orderBy('id', 'asc')->paginate($request->input('usernum',10));
        }
        // 如果用户激活状态不为空,且用户权限和用户审核都为空
        if (($bb==null && $cc==null) && !($dd==null)) {
              $adminusers = DB::table('adminuser')
                ->where(function($query)use($request){
                    //数据的处理
                    $a=$request->input('username');
                    $d=$request->input('userstatus');
                    switch ($d) {
                    case 'yes':
                        $dd='已激活';
                        break;
                    case '2':
                        $dd='未激活';
                        break;  
                    default:
                        $dd=null;
                        break;
                }
                  
               
                  $query->where('username','like','%'.$a.'%')->where(['userstatus'=>$dd]);
                  })
                  ->orderBy('id', 'asc')->paginate($request->input('usernum',10));
          }
        // 如果用户激活状态为空,且用户权限和用户审核都不为空
        if (!($bb==null) && !($cc==null) && $dd==null) {
              
              $adminusers = DB::table('adminuser')
                ->where(function($query)use($request){
                    //数据的处理
                    $a=$request->input('username');
                     $b=$request->input('userlevel');
                   switch ($b) {
                    case '1':
                        $bb='超级管理员';
                        break;
                    case '2':
                        $bb='普通管理员';
                        break;
                    case '3':
                        $bb='临时管理员';
                        break;   
                    default:
                        $bb=null;
                        break;
                }
                   $c=$request->input('useraudit');
                  switch ($c) {
                    case 'yes':
                        $cc='已审核';
                        break;
                    case 'no':
                        $cc='未审核';
                        break;  
                    default:
                        $cc=null;
                        break;
                }
               
                  $query->where('username','like','%'.$a.'%')->where(['userlevel'=>$bb,'useraudit'=>$cc]);
                  })
                 ->orderBy('id', 'asc') ->paginate($request->input('usernum',10));
          }
      
                  $sessiondata = $request->session()->all();
                  $sessionid=$sessiondata['id'];
                  $sessionusername=$sessiondata['username'];
                  $sessionres=DB::table('adminuser')->where('id',$sessionid)->first();
      //解析模板
        return view('admin.user.index',['adminusers'=>$adminusers,'usersessioninfo'=>$sessionres,'request'=>$request->all()]);
    }


    // 用户添加页面
    public function getAdd(Request $request){
    	//显示模板
            $sessiondata = $request->session()->all();
            $sessionid=$sessiondata['id'];
            $sessionusername=$sessiondata['username'];
            $sessionres=DB::table('adminuser')->where('id',$sessionid)->first();
    	return view('admin.user.add',['usersessioninfo'=>$sessionres]);
    }
    /**
     * ajax检测用户名是否存在
     */
    public function test(Request $request)
    {
        $username=$request->input('username');
        $res=DB::table('adminuser')->where('username',$username)->first();
        if($res){
            // 为真 用户名已存在 返回 1 不能使用
            echo 1;
        }else{
            // 为假 用户名不存在 返回 0 可使用
            echo 0;
        }
    }

    //接受数据执行插入
    public function postInsert(AdminRegisterRequest $request)
    {

    

    	// 接受数据
    	$data=$request->only(['username','userpassword','useraudit','userlevel','userremark','useremail']);

    	$data['userpassword']=Hash::make($request->input('userpassword'));

                  $sessiondata = $request->session()->all();
                  $sessionid=$sessiondata['id'];
                  $sessionusername=$sessiondata['username'];
                  $sessionres=DB::table('adminuser')->where('id',$sessionid)->first();



    	// 后期需要修改的数据
    		// 1.用户编号	时间的前半部分
			       $timeone=date('ymdi',time());
    				$data['userid']=$timeone;
    		// 2.用户添加人 根据session来做
    			$data['useradd']=$sessionusername;
    		// 3.用户添加时间
			        $timetwo=date('Y-m-d H:i:s',time());
    				$data['usertime']=$timetwo;
	    	// 4.用户是否激活
    			$data['userstatus']='已激活';
	    	// 5.用户的token
    			$data['usertoken'] = str_random(30);
    		//6.用户是否审核  yes是已审核 no是未审核
    			$audit=$data['useraudit'];
    			if ($audit=='yes') {
    				$reaudit='已审核';
    			} else {
    				$reaudit='未审核';
    			}
    			$data['useraudit']=$reaudit;
    		//7.用户的权限  其中2为普通管理员  3为临时管理员
    			$level=$data['userlevel'];	
    			switch ($level) {
                    case '1':
                        $relevel='超级管理员';
                        break;
                    case '2':
                        $relevel='普通管理员';
                        break;
                    case '3':
                         $relevel='临时管理员';
                        break; 
                    default:
                        break;
                }
               $data['userlevel']=$relevel;	
               // 获取完所有数据之后将数据插入数据库


		        $res=DB::table('adminuser')->insert($data);
		        if($res){
		            return redirect('/admin/user/index')->with('success','数据添加成功');
		        }else{
		            return back()->with('error','数据插入失败');
		        }
    }
     
      // 用户数据修改 
      public function getEdit(Request $request,$id){
                  $sessiondata = $request->session()->all();
                  $sessionid=$sessiondata['id'];
                  $sessionusername=$sessiondata['username'];
                  $sessionres=DB::table('adminuser')->where('id',$sessionid)->first();
          // 查询数据
            $res=DB::table('adminuser')->where('id',$id)->first();
            return view('admin.user.edit',['userinfo'=>$res,'usersessioninfo'=>$sessionres]); 
      }

      // 用户数据的修改 修改数据库
       public function postUpdate(Request $request)
        {
          // 获取id
          $id=$request->input('id');
          $resusername=DB::table('adminuser')->where('id',$id)->get();
          foreach ($resusername as $k => $v) {
                $usernames=$v->username;
          }
          // 接受数据
          $data=$request->only(['useraudit','userlevel','userremark','useremail']);
            // laravel表单验证
                 $this->validate($request, [
                      'useremail'=> 'required|email',
                      'useraudit'=> 'required',
                      'userlevel'=> 'required',
                      'userremark'=> 'required'
                  ],[
                    'useremail.required'=>'用户邮箱不能为空',
                    'useremail.email'=>'邮箱格式不正确',
                    'useraudit.required'=>'用户审核不能为空',
                    'userlevel.required'=>'用户权限不能为空',
                    'userremark.required'=>'用户备注不能为空',
                  ]); 
       
        // 4.用户是否激活
          $data['userstatus']='已激活';
        //6.用户是否审核  yes是已审核 no是未审核
          $audit=$data['useraudit'];
          if ($audit=='yes') {
            $reaudit='已审核';
          } else {
            $reaudit='未审核';
          }
          $data['useraudit']=$reaudit;
        //7.用户的权限  其中2为普通管理员  3为临时管理员
          $level=$data['userlevel'];  
          switch ($level) {
                    case '1':
                        $relevel='超级管理员';
                        break;
                    case '2':
                        $relevel='普通管理员';
                        break;
                    case '3':
                         $relevel='临时管理员';
                        break; 
                    default:
                        break;
                }
               $data['userlevel']=$relevel; 
                $data['username']=$usernames; 

        // 获取完所有数据之后将数据插入数据库
          $res=DB::table('adminuser')->where('id',$id)->update($data);
          if($res){
            return redirect('/admin/user/index')->with('success','数据修改成功');
          }else{
            return back()->with('error','数据修改失败');
          }
        }
    /**
     * ajax检测删除
     */
    public function del(Request $request)
    {
        $id=$request['id'];
        $ids = explode(",",$id);
     
        for ($i=0; $i <50 ; $i++) { 
            foreach ($ids as $k => $v) {
              $ide=$v;
             $res=DB::table('adminuser')->where('id',$ide)->delete();  
            }
        }

        if($res){
            // 为真 用户名已存在 返回 1 不能使用
            echo 1;
        }else{
            // 为假 用户名不存在 返回 0 可使用
            echo 0;
        }
    }

    /**
     * 用户的删除
     */
    public function getDelete($id)
    {
       
        // 验证超级用户
            $res=DB::table('adminuser')->where('id',$id)->delete();
            if($res){
                // 成功
                return redirect('/admin/user/index')->with('success','数据删除成功');
            }else{
                // 失败
                return back()->with('error','数据删除失败');
            }  
       
    }







}
